package com.star.common.kit.contract.enums.language.detail;

import com.star.common.kit.contract.enums.language.Iso6391LanguageEnum;
import com.star.common.kit.contract.enums.language.RealLanguageTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 英语语言枚举
 *
 * @author zhouhengzhe
 * @version 1.0
 * @date 2023/9/7 15:36
 */
@Getter
@AllArgsConstructor
public enum EnglishLanguageEnum {
    EN("en", "英语", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_US("en_US", "英语（美国)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_AU("en_AU", "英语（澳大利亚)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_CA("en_CA", "英语（加拿大)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_IN("en_IN", "英语（印度)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_IE("en_IE", "英语（爱尔兰)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_NZ("en_NZ", "英语（新西兰)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_SG("en_SG", "英语（新加波)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_ZA("en_ZA", "英语（南非)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    EN_GB("en_GB", "英语（英国)", RealLanguageTypeEnum.EN.getCode(), Iso6391LanguageEnum.EN),
    ;

    /**
     * 语言标识
     */
    private final String code;

    /**
     * 描述
     */
    private final String message;

    /**
     * 实际用的语言
     */
    private final String realCode;

    /**
     * ISO语言标识
     */
    private final Iso6391LanguageEnum iso6391LanguageEnum;

    /**
     * 通过code获取实际用的语言
     *
     * @param language
     * @return
     */
    public static String getRealCodeByCode(String language) {
        for (EnglishLanguageEnum value : values()) {
            if (value.getCode().equalsIgnoreCase(language)) {
                return value.getRealCode();
            }
        }
        return null;
    }
}
